home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / biz / dopus / DO5extPrefs12.lha / DO5extPrefs / Do5extPrefs.c < prev    next >
C/C++ Source or Header  |  1998-02-24  |  24KB  |  896 lines

  1. /*
  2.  *  Source machine generated by GadToolsBox V2.0b
  3.  *  which is (c) Copyright 1991-1993 Jaba Development
  4.  *
  5.  *  GUI Designed by : Jens Weyer
  6.  */
  7.  
  8. #include <exec/types.h>
  9. #include <intuition/intuition.h>
  10. #include <intuition/classes.h>
  11. #include <intuition/classusr.h>
  12. #include <intuition/imageclass.h>
  13. #include <intuition/gadgetclass.h>
  14. #include <libraries/gadtools.h>
  15. #include <graphics/displayinfo.h>
  16. #include <graphics/gfxbase.h>
  17. #include <clib/exec_protos.h>
  18. #include <clib/intuition_protos.h>
  19. #include <clib/gadtools_protos.h>
  20. #include <clib/graphics_protos.h>
  21. #include <clib/utility_protos.h>
  22. #include <string.h>
  23. #include <stdio.h>
  24. #include <stdlib.h>
  25. #include <clib/diskfont_protos.h>
  26.  
  27. #include <pragmas/exec_pragmas.h>
  28. #include <pragmas/intuition_pragmas.h>
  29. #include <pragmas/gadtools_pragmas.h>
  30. #include <pragmas/graphics_pragmas.h>
  31. #include <pragmas/utility_pragmas.h>
  32. #include <pragma/diskfont_lib.h>
  33. #include <pragma/dos_lib.h>
  34.  
  35. #include <my/EasyReq.h>
  36.  
  37. #include <wbstartup.h>
  38.  
  39. #include "Do5extPrefs12.h"
  40.  
  41. int EasyReq(struct Window *, char *, char *, char *);
  42. /*int CheckOpusVersion(void);*/
  43. void LoadENVars(void);
  44. int SwapState(int,int);
  45. void SwapCheck(int,int);
  46. int GetEnv(char *,int);
  47. void SetEnv(char *, int,int);
  48. void InitVarExist(void);
  49. void PrepSetEnv(char *,int,int);
  50. void SetNum(int,int);
  51. int GetNum(int);
  52. int Exists(char *);
  53.  
  54. static unsigned char *version = "$VER:DO5extPrefs 1.2  ("__DATE__") by Jens Weyer for DOpus 5.65+";
  55.  
  56. struct Library     *GadToolsBase;
  57. int                        VarExist[VarMemSize];
  58. int                        VarDefault[VarMemSize];
  59. int                        NoNoLabel = 0;
  60. int                        DLook = 0;
  61. int                        NoCustomDrag = 0;
  62. int                        ShowUseDTFirst = 0;
  63. int                        UseWBInfo = 0;
  64. int                        WBTitle = 0;
  65. int                        QuickIconDrag = 0;
  66. int                        PopTime = 10;
  67. int                        NoMUFS = 0;
  68. int                        Benefy = 0;
  69. int                        HidePadLock = 0;
  70. int                        CmdLineLength = 512;
  71. int                        IconSpaceX = 3;
  72. int                        IconSpaceY = 5;
  73. int                        IconGridX = 0;
  74. int                        IconGridY = 0;
  75.  
  76. struct Screen         *Scr = NULL;
  77. UBYTE                 *PubScreenName = "Workbench";
  78. APTR                   VisualInfo = NULL;
  79. struct Window         *Project0Wnd = NULL;
  80. struct Gadget         *Project0GList = NULL;
  81. struct Menu           *Project0Menus = NULL;
  82. struct IntuiMessage    Project0Msg;
  83. struct Gadget         *Project0Gadgets[18];
  84. UWORD                  Project0Left = 10;
  85. UWORD                  Project0Top = 15;
  86. UWORD                  Project0Width = 334;
  87. UWORD                  Project0Height = 199;
  88. UBYTE                 *Project0Wdt = (UBYTE *)"DO5extPrefs v1.2";
  89. struct TextAttr       *Font, Attr;
  90. UWORD                  FontX, FontY;
  91. UWORD                  OffX, OffY;
  92. struct TextFont       *Project0Font = NULL;
  93.  
  94. struct NewMenu Project0NewMenu[] = {
  95.     NM_TITLE, (STRPTR)"Project", NULL, 0, NULL, NULL,
  96.     NM_ITEM, (STRPTR)"About...", (STRPTR)"?", 0, 0L, (APTR)Project0About,
  97.     NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  98.     NM_ITEM, (STRPTR)"Use", (STRPTR)"U", 0, 0L, (APTR)Project0Use,
  99.     NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  100.     NM_ITEM, (STRPTR)"Save", (STRPTR)"S", 0, 0L, (APTR)Project0Save,
  101.     NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  102.     NM_ITEM, (STRPTR)"Quit", (STRPTR)"Q", 0, 0L, (APTR)Project0Quit,
  103.     NM_END, NULL, NULL, 0, 0L, NULL };
  104.  
  105. UWORD Project0GTypes[] = {
  106.     BUTTON_KIND,
  107.     CHECKBOX_KIND,
  108.     CHECKBOX_KIND,
  109.     CHECKBOX_KIND,
  110.     CHECKBOX_KIND,
  111.     CHECKBOX_KIND,
  112.     CHECKBOX_KIND,
  113.     CHECKBOX_KIND,
  114.     INTEGER_KIND,
  115.     BUTTON_KIND,
  116.     CHECKBOX_KIND,
  117.     CHECKBOX_KIND,
  118.     CHECKBOX_KIND,
  119.     INTEGER_KIND,
  120.     INTEGER_KIND,
  121.     INTEGER_KIND,
  122.     CHECKBOX_KIND,
  123.     CHECKBOX_KIND
  124. };
  125.  
  126. struct NewGadget Project0NGad[] = {
  127.     5, 178, 147, 16, (UBYTE *)"_Save", NULL, GD_Save, PLACETEXT_IN, NULL, (APTR)SaveClicked,
  128.     121, 7, 26, 11, (UBYTE *)"_NoNoLabel", NULL, GD_Label, PLACETEXT_LEFT, NULL, (APTR)LabelClicked,
  129.     121, 24, 26, 11, (UBYTE *)"_NoCustomDrag", NULL, GD_NoCustomDrag, PLACETEXT_LEFT, NULL, (APTR)NoCustomDragClicked,
  130.     121, 42, 26, 11, (UBYTE *)"_WorkbenchTitle", NULL, GD_WBTitle, PLACETEXT_LEFT, NULL, (APTR)WBTitleClicked,
  131.     121, 61, 26, 11, (UBYTE *)"_QuickIconDrag", NULL, GD_QuickIconDrag, PLACETEXT_LEFT, NULL, (APTR)QuickIconDragClicked,
  132.     161, 7, 26, 11, (UBYTE *)"_UseWBInfo", NULL, GD_UseWBInfo, PLACETEXT_RIGHT, NULL, (APTR)UseWBInfoClicked,
  133.     161, 24, 26, 11, (UBYTE *)"Sh_owUseDatatypesFirst", NULL, GD_DTF, PLACETEXT_RIGHT, NULL, (APTR)DTFClicked,
  134.     161, 42, 26, 11, (UBYTE *)"3D_Look", NULL, GD_3DLook, PLACETEXT_RIGHT, NULL, (APTR)DLookClicked,
  135.     197, 99, 53, 17, (UBYTE *)"PopUpDelay (in 1/50 secs.)", NULL, GD_TimePopUpDelay, PLACETEXT_LEFT, NULL, (APTR)TimePopUpDelayClicked,
  136.     182, 178, 147, 16, (UBYTE *)"Us_e", NULL, GD_Use, PLACETEXT_IN, NULL, (APTR)UseClicked,
  137.     161, 61, 26, 11, (UBYTE *)"No_MultiUser", NULL, GD_NoMUFS, PLACETEXT_RIGHT, NULL, (APTR)NoMUFSClicked,
  138.     121, 80, 26, 11, (UBYTE *)"_Benefy", NULL, GD_Benefy, PLACETEXT_LEFT, NULL, (APTR)BenefyClicked,
  139.     161, 80, 26, 11, (UBYTE *)"_HidePadLock", NULL, GD_HidePadLock, PLACETEXT_RIGHT, NULL, (APTR)HidePadLockClicked,
  140.     197, 118, 53, 17, (UBYTE *)"CommandLineLength (in chars)", NULL, GD_LengthOfCmdLine, PLACETEXT_LEFT, NULL, (APTR)LengthOfCmdLineClicked,
  141.     95, 138, 53, 17, (UBYTE *)"IconSpaceX", NULL, GD_IconSpaceX, PLACETEXT_LEFT, NULL, (APTR)IconSpaceXClicked,
  142.     162, 138, 53, 17, (UBYTE *)"Y", NULL, GD_IconSpaceY, PLACETEXT_LEFT, NULL, (APTR)IconSpaceYClicked,
  143.     121, 157, 26, 11, (UBYTE *)"IconGrid_X", NULL, GD_IconGridX, PLACETEXT_LEFT, NULL, (APTR)IconGridXClicked,
  144.     162, 157, 26, 11, (UBYTE *)"IconGrid_Y", NULL, GD_IconGridY, PLACETEXT_RIGHT, NULL, (APTR)IconGridYClicked
  145. };
  146.  
  147. ULONG Project0GTags[] = {
  148.     (GT_Underscore), '_', (TAG_DONE),
  149.     (GT_Underscore), '_', (TAG_DONE),
  150.     (GT_Underscore), '_', (TAG_DONE),
  151.     (GT_Underscore), '_', (TAG_DONE),
  152.     (GT_Underscore), '_', (TAG_DONE),
  153.     (GT_Underscore), '_', (TAG_DONE),
  154.     (GT_Underscore), '_', (TAG_DONE),
  155.     (GT_Underscore), '_', (TAG_DONE),
  156.     (GA_TabCycle), FALSE, (GTIN_Number), 10, (GTIN_MaxChars), 10, (STRINGA_Justification), (GACT_STRINGCENTER), (TAG_DONE),
  157.     (GT_Underscore), '_', (TAG_DONE),
  158.     (GT_Underscore), '_', (TAG_DONE),
  159.     (GT_Underscore), '_', (TAG_DONE),
  160.     (GT_Underscore), '_', (TAG_DONE),
  161.     (GA_TabCycle), FALSE, (GTIN_Number), 512, (GTIN_MaxChars), 4, (STRINGA_Justification), (GACT_STRINGCENTER), (TAG_DONE),
  162.     (GA_TabCycle), FALSE, (GTIN_Number), 3, (GTIN_MaxChars), 2, (STRINGA_Justification), (GACT_STRINGCENTER), (TAG_DONE),
  163.     (GA_TabCycle), FALSE, (GTIN_Number), 5, (GTIN_MaxChars), 2, (STRINGA_Justification), (GACT_STRINGCENTER), (TAG_DONE),
  164.     (GT_Underscore), '_', (TAG_DONE),
  165.     (GT_Underscore), '_', (TAG_DONE)
  166. };
  167.  
  168. static UWORD ComputeX( UWORD value )
  169. {
  170.     return(( UWORD )((( FontX * value ) + 3 ) / 6 ));
  171. }
  172.  
  173. static UWORD ComputeY( UWORD value )
  174. {
  175.     return(( UWORD )((( FontY * value ) + 5 ) / 11 ));
  176. }
  177.  
  178. static void ComputeFont( UWORD width, UWORD height )
  179. {
  180.     Forbid();
  181.     Font = &Attr;
  182.     Font->ta_Name = (STRPTR)GfxBase->DefaultFont->tf_Message.mn_Node.ln_Name;
  183.     Font->ta_YSize = FontY = GfxBase->DefaultFont->tf_YSize;
  184.     FontX = GfxBase->DefaultFont->tf_XSize;
  185.     Permit();
  186.  
  187.     OffX = Scr->WBorLeft;
  188.     OffY = Scr->RastPort.TxHeight + Scr->WBorTop + 1;
  189.  
  190.     if ( width && height ) {
  191.         if (( ComputeX( width ) + OffX + Scr->WBorRight ) > Scr->Width )
  192.             goto UseTopaz;
  193.         if (( ComputeY( height ) + OffY + Scr->WBorBottom ) > Scr->Height )
  194.             goto UseTopaz;
  195.     }
  196.     return;
  197.  
  198. UseTopaz:
  199.     Font->ta_Name = (STRPTR)"topaz.font";
  200.     FontX = FontY = Font->ta_YSize = 8;
  201. }
  202.  
  203. int SetupScreen( void )
  204. {
  205.     if ( ! ( Scr = LockPubScreen( PubScreenName )))
  206.         return( 1L );
  207.  
  208.     ComputeFont( 0, 0 );
  209.  
  210.     if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
  211.         return( 2L );
  212.  
  213.     return( 0L );
  214. }
  215.  
  216. void CloseDownScreen( void )
  217. {
  218.     if ( VisualInfo ) {
  219.         FreeVisualInfo( VisualInfo );
  220.         VisualInfo = NULL;
  221.     }
  222.  
  223.     if ( Scr        ) {
  224.         UnlockPubScreen( NULL, Scr );
  225.         Scr = NULL;
  226.     }
  227. }
  228.  
  229. void Project0Render( void )
  230. {
  231.     ComputeFont( Project0Width, Project0Height );
  232.  
  233.     DrawBevelBox( Project0Wnd->RPort, OffX + ComputeX( 5 ),
  234.